import axios from "axios";
import router from "@/router/routers";
import { Notification } from "element-ui";
import store from "../store";
import { getToken } from "@/utils/auth";
import Config from "@/settings";
import Cookies from "js-cookie";

// 创建axios实例
const service = axios.create({
  // baseURL: process.env.VUE_APP_BASE_URL, // api 的 base_url
  timeout: Config.timeout // 请求超时时间
});

// request拦截器
// service.interceptors.request.use(
//   config => {
//     if (getToken()) {
//       config.headers["Authorization"] = getToken(); // 让每个请求携带自定义token 请根据实际情况自行修改
//     }
//     config.headers["Content-Type"] = "application/json";
//     return config;
//   },
//   error => {
//     Promise.reject(error);
//   }
// );

// response 拦截器
// service.interceptors.response.use(
//   response => {
//     return response.data;
//   },
//   error => {
//     // 兼容blob下载出错json提示
//     if (
//       error.response.data instanceof Blob &&
//       error.response.data.type.toLowerCase().indexOf("json") !== -1
//     ) {
//       const reader = new FileReader();
//       reader.readAsText(error.response.data, "utf-8");
//       reader.onload = function(e) {
//         const errorMsg = JSON.parse(reader.result).message;
//         Notification.error({
//           title: errorMsg,
//           duration: 5000
//         });
//       };
//     } else {
//       let code = 0;
//       try {
//         code = error.response.data.status;
//       } catch (e) {
//         if (error.toString().indexOf("Error: timeout") !== -1) {
//           Notification.error({
//             title: "网络请求超时",
//             duration: 5000
//           });
//           return Promise.reject(error);
//         }
//       }
//       console.log(code);
//       if (code) {
//         if (code === 401) {
//           store.dispatch("LogOut").then(() => {
//             // 用户登录界面提示
//             Cookies.set("point", 401);
//             location.reload();
//           });
//         } else if (code === 403) {
//           router.push({ path: "/401" });
//         } else {
//           const errorMsg = error.response.data.message;
//           if (errorMsg !== undefined) {
//             Notification.error({
//               title: errorMsg,
//               duration: 5000
//             });
//           }
//         }
//       } else {
//         Notification.error({
//           title: "接口请求失败",
//           duration: 5000
//         });
//       }
//     }
//     return Promise.reject(error);
//   }
// );
export default service;
